In the field of Internet-based communication, the Transfer Control Protocol (TCP) is the most widely used transmission protocol. It provides reliable end-to-end data communication services for Internet users. The TCP is a “slide window” protocol originally designed for fixed hosts and wired networks. By controlling the size of a proxy window, a data transmitting unit can control the rate of data transmission, and thus control the degree of network congestion. In a data packet transmission process, the transmitting unit first increases the size of the window linearly or exponentially, and then reduces the window to a half its size as soon as the lost of the packets occurs, whereupon the window size increases gradually again. In this way, the TCP detects the maximum transmission rate available in the network, and uses the packet loss to indicate whether the transmitting rate has exceeded the available bandwidth of the network.
The above-described conventional controlling method of the TCP is suitable for wired networks in which the bit error rate (BER) is low and the packet loss is mainly caused by network congestion. Unlike a wired network, however, a wireless network is characterized by high BER and mobility, and the errors of a link or movement of a host may lead to the loss of data packets. When the TCP is used in a wireless network, its performance deteriorates dramatically. The congestion control mechanism of the TCP is the main cause for performance deterioration of the TCP in the wireless network.
Currently, many schemes are proposed in order to improve the TCP for wireless networks. Depending on the basic principles, the schemes can be sorted into three types: end-to-end scheme, split connection scheme, and link layer scheme. In an end-to-end scheme, the transmitting unit handles the packet loss errors on both the wired network and the wireless network, and the TCP of the transmitting unit needs to be modified. In a split connection scheme, a connection is split into two sections at a mobile base station (MBS), one is a wired section from a fixed host to the MBS, and another is a wireless section from the MBS to a mobile host (MH). The split connection scheme does not require a modification of the TCP in the wired section. Only a modification of the TCP in the wireless section is needed. Through the splitting, the errors occurred in the wireless section can be hidden from the wired section, and the relatively stable transmission environment of the wired section is not affected by the complicated and volatile transmission environment of the wireless section. The link layer scheme combines a local retransmission mechanism with a forward error correction (FEC) mechanism, also aimed to hide various transmission errors related to the wireless section from the transmitting unit.
One of the TCP improvement schemes recently proposed for wireless networks is a Snoop protocol. The Snoop protocol belongs to the performance enhance proxy (PEP) technology. On a link layer (for example, the media access control (MAC) layer), the Snoop protocol introduces an Auto-Repeat Request (ARQ) mechanism for transmitting data packets, aimed at overcoming bit errors on wireless channels. On the network layer (for example, the Internet protocol (IP) layer), the Snoop protocol adopts a multicast technology to tackle the problem of incorrect packet reception caused by mobile handover. The Snoop protocol not only covers the transmission of application data from a host that corresponds to a MH (i.e. a Corresponding Host (CH)) to the MH, but also covers the data transmission in the opposite direction. When data packets are transmitted from the CH to the MH, a proxy program of the Snoop protocol at the MBS caches the data packets, and forwards the data packets to the MH. The Snoop protocol proxy detects incorrectly received data packets (including lost data packets hereinafter) on a wireless channel in two ways: one is setting a timeout retransmission timer similar to that of the TCP on the link layer; another is detecting, on the link layer, whether a Duplicate Acknowledgement (Dup Ack) packet, which is the same as a previous Acknowledgement (Ack) packet and which indicates a data packet or several data packets are not correctly received by the MH, occurs on a reversed path. When the Dup Ack packet occurs for the first time, the incorrectly received data packet(s) is (are) retransmitted to the MH by the MBS, and the subsequent Dup Ack packets, if any, are discarded. When the data is transmitted from the MH to the CH, the MBS checks whether there are discontinuous segments in the sequence numbers of the received data packets. Once discontinuous segments are discovered, an explicit loss notification is sent to the MH, indicating that the data packet needs to be retransmitted.
The inventor of the present invention finds that, like other local retransmission schemes, the Snoop protocol faces the problem of unable to have the transmitting unit completely free of the burden of dealing with the data packets that are not correctly received due to the volatility of the wireless section, especially in the cases where the wireless section is a multi-hop network in which a wireless path is composed by multiple links, or when such a wireless path is interrupted temporarily. When local retransmissions are performed repeatedly on a wireless path, the retransmission timer of the transmitting unit may expire, triggering a retransmission at the transmitting unit and a slow start of the congestion control mechanism, thus resulting in deterioration of the network performance.